package com.gitee.l0km.codegen.decorator;

import org.apache.commons.cli.Option;

import com.gitee.l0km.codegen.base.generator.GeneratorOptions;

public class SpringDecoratorOptions extends GeneratorOptions implements SpringDecoratorConstants{
	private final static SpringDecoratorOptions instance = new SpringDecoratorOptions();

	protected SpringDecoratorOptions() {
		super();
		options.addOption(Option.builder(IMPL_CLASS_OPTION).longOpt(IMPL_CLASS_OPTION_LONG)
				.desc(IMPL_CLASS_OPTION_DESC).numberOfArgs(1).required().build());
		options.addOption(Option.builder(SOURCE_PREFIX_OPTION).longOpt(SOURCE_PREFIX_OPTION_LONG)
				.desc(SOURCE_PREFIX_OPTION_DESC).numberOfArgs(1).build());
		options.addOption(Option.builder(CLASS_PATH_OPTION).longOpt(CLASS_PATH_OPTION_LONG)
				.desc(CLASS_PATH_OPTION_DESC).numberOfArgs(1).build());
		options.addOption(Option.builder().longOpt(USE_COMMON_RESPONSE_OPTION_LONG)
				.desc(USE_COMMON_RESPONSE_OPTION_DESC).numberOfArgs(0).build());
		options.addOption(Option.builder().longOpt(EXCLUDE_ANN_OPTION_LONG)
				.desc(EXCLUDE_ANN_OPTION_DESC).numberOfArgs(1).build());
		options.addOption(Option.builder().longOpt(PORT_PREFIX_OPTION_LONG)
				.desc(PORT_PREFIX_OPTION_DESC).numberOfArgs(1).build());
		options.addOption(Option.builder().longOpt(TIMECOST_OPTION_LONG)
				.desc(TIMECOS_OPTION_DESC).numberOfArgs(0).build());
		options.addOption(Option.builder().longOpt(WITH_DELEGATE_METHOD_OPTION_LONG)
				.desc(WITH_DELEGATE_METHOD_OPTION_DESC).numberOfArgs(0).build());
	}

	/**
	 * @return instance
	 */
	public static SpringDecoratorOptions getInstance() {
		return instance;
	}


}
